$(function () {

    var layer = layui.layer
    var form = layui.form
    var laypage = layui.laypage;
    // 定义一个查询的参数对象，将来请求数据的时候，
    // 需要将请求参数对象提交到服务器
    var q = {
        pagenum: 1,
        pagesize: 2,
        cate_id: '',
        state: ''
    }
    initTable()
    initCate()
    // 获取文章列表数据
    function initTable() {
        $.ajax({

            method: 'GET',
            url: '/my/article/list',
            data: q,
            success: function (res) {
                console.log(res)
                if (res.status !== 0) {
                    return layer.msg('获取文章列表失败！')
                }
                // layer.msg('获取文章列表成功！')
                // 调用模板引擎
                var str = template('tpl-table', res)

                $('tbody').html(str)
                // 等到列表渲染后 在渲染分页区
                renderPage(res.total)
            }

        })
    }
    // 通过 template.defaults.imports 定义过滤器
    // 美化时间
    template.defaults.imports.dataFormat = function (date) {

        var dt = new Date(date)
        var y = dt.getFullYear()

        var m = dt.getMonth() + 1
        m = m > 10 ? m : '0' + m

        var d = dt.getDate()
        d = d > 10 ? d : '0' + d
        var hh = dt.getHours()
        hh = hh > 10 ? hh : '0' + hh

        var mm = dt.getMinutes()
        mm = mm > 10 ? mm : '0' + mm

        var ss = dt.getSeconds()
        ss = ss < 10 ? '0' + ss : ss

        return y + '-' + m + '-' + d + ' ' + hh + ':' + mm + ':' + ss
        // 两种方法
        // 定义补零的函数
        // var d = padZero(dt.getDate())
        // function padZero(n) {
        //     return n > 9 ? n : '0' + n
        // }

    }


    // 筛选区
    // 发起请求  渲染下拉框
    function initCate() {
        $.ajax({
            method: 'GET',
            url: '/my/article/cates',
            success: function (res) {
                if (res.status !== 0) {
                    return layer.msg('获取分类数据失败！')
                }
                var str = template('tpl-cate', res)
                $('[name=cate_id]').html(str)
                // console.log(11)
                // 通过 layui 重新渲染表单区域的UI结构
                form.render()
            }
        })
    }

    // 为筛选添加submit事件
    $('#form-search').on('submit', function (e) {
        e.preventDefault()
        // 获取表单中选中项的值   属性选择器
        var cate_id = $('[name=cate_id]').val()
        var state = $('[name=state]').val()
        // 为q  对应的属性赋值
        q.cate_id = cate_id
        q.state = state
        // 根据最新的筛选条件，重新渲染表格的数据
        initTable()

    })

    // 分页区
    function renderPage(total) {
        console.log(total)
        laypage.render({
            elem: 'pageBox',
            count: total,
            curr: q.pagenum,
            limit: q.pagesize,
            layout: ['count', 'limit', 'prev', 'page', 'next', 'skip'],
            limits: [2, 3, 5, 10],
            // 分页发生切换的时候，触发 jump 回调
            jump: function (obj, first) {
                console.log(first)
                console.log(obj.curr)
                // 把最新的页码值给q参数中
                q.pagenum = obj.curr
                // 把最新的条目数给q参数中
                q.pagesize = obj.limit

                if (!first) {
                    initTable()
                }
            }
        })
    }

    // 删除功能
    // 通过代理的形式，为删除按钮绑定点击事件处理函数

    $('tbody').on('click', '.btn-delete', function () {

        // 获取删除按钮的个数
        var len = $('.btn-delete').length
         // 获取当前的索引
         var id = $(this).attr('data-id')

        layer.confirm('确认删除?', {
            icon: 3,
            title: '提示'
        }, function (index) {
            //do something
           
            $.ajax({
                method: 'GET',
                url: '/my/article/delete/' + id,
                success: function (res) {
                    if (res.status !== 0) {
                        return layer.msg('删除失败')
                    }
                    layer.msg('删除成功')
                    if(len===1){
                        q.pagenum  =   q.pagenum === 1 ? 1 : q.pagenum -1
                    }
                    initTable()
                }
            })
            layer.close(index);
        });

    })

})